package hcn.api.service.api.pay;

import ctd.controller.exception.ControllerException;
import ctd.util.annotation.RpcService;
import hcn.protocol.ods.feeinquiry.*;
import hcn.util.BaseResponse;

import java.util.List;
import java.util.Map;

/**
 * @program: 20190427StandardEdition
 *
 * @description: 门诊/住院费用查询
 *
 * @author: zhusm@bsoft.com.cn
 *
 * @create: 2019-05-24 09:24
 **/
public interface FeeInquiryInterface {

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 获取住院费用列表
     * @CreateTime: 9:33 2019/5/24
     * @Params: [map]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.HospitalizationFeeResponseBean>
     **/
    @RpcService
    BaseResponse<HospitalizationFeeResponseBean> getBedFee(Map<String,Object> map);


    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 住院费用详情
     * @CreateTime: 10:03 2019/5/27
     * @Params: []
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.HospitalizationDetailFeeResponseBean>
     **/
    @RpcService
    BaseResponse<HospitalizationDetailFeeResponseBean> outpatientExpensesDetail(Map<String,Object> map);

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 住院费用详情按日期
     * @CreateTime: 16:23 2019/10/10
     * @Params: [map]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.HospitalizationDetailFeeResponseBean>
     **/
    @RpcService
    BaseResponse<HospitalizationDetailToDateFeeResponseBean> outpatientExpensesDetailToDate(Map<String,Object> map);

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 获取门诊费用列表
     * @CreateTime: 9:33 2019/5/24
     * @Params: [map]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.OutpatientFeeResponseBean>
     **/
    @RpcService
    BaseResponse<OutpatientFeeResponseBean> listBill(Map<String,Object> map);

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 门诊费用详情
     * @CreateTime: 10:04 2019/5/27
     * @Params: [map]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.OutpatientDetailFeeResponseBean>
     **/
    @RpcService
    BaseResponse<OutpatientDetailFeeResponseBean> listHospitalizationPayment(Map<String,Object> map);

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 查询出院带药信息
     * @CreateTime: 13:35 2019/6/12
     * @Params: [map]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.DischargeMedicationInformationResponse>
     **/
    @RpcService
    BaseResponse<DischargeMedicationInformationResponse> getDischargeMedicationInformation(Map<String,Object> map);

    /***
     * @Author: yangy @bsoft.com.cn
     * @Description: 查询出院带药信息-xml(医院平台)
     * @CreateTime: 13:35 2019/6/12
     * @Params: DischargeMedicationInformationRequest
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.DischargeMedicationInformationResponse>
     **/
    @RpcService
    BaseResponse<List<DischargeMedicationInformationResponse>> getXmlDischargeMedicationInformation(DischargeMedicationInformationRequest request) throws ControllerException;

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 手术状态列表
     * @CreateTime: 14:46 2019/6/12
     * @Params: [orgId, patientCodeList, status]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.SurgeryStatusList>
     **/
    @RpcService
    BaseResponse<SurgeryStatusList> getSurgeryStatus(String orgId,Integer queryType, String patientMedicalCardNumberList,String patientIdentityCardList, String patientCodeList,String operationId,String hisUrl);

    /***
     * @Author: zhusm@bsoft.com.cn
     * @Description: 获取手术详情
     * @CreateTime: 16:21 2019/6/17
     * @Params: [orgId, operationId]
     * @return: BaseResponse<hcn.protocol.ods.feeinquiry.SurgeryStatusDetails>
     **/
    @RpcService
    BaseResponse<SurgeryStatusDetails> getSurgeryDetails(String orgId,String operationId,String hisUrl);
}
